-- @owner: lihongji
-- @date: 2022/07/28
-- @testpoint: group by cube/rollup/having

--step1:建序列;expect:成功
drop sequence if exists sq_ustore_regr_intercept_0013;
create sequence sq_ustore_regr_intercept_0013 increment by 1 start with 10;

--step2:建表并插入数据;expect:成功
drop table if exists t_ustore_regr_intercept_0013 cascade;
create table t_ustore_regr_intercept_0013(
 col_1 integer,
 col_2 number(19,0),
 col_3 number(10,6)
) with (storage_type=ustore);

begin
 for i in 1..50 loop
  insert into t_ustore_regr_intercept_0013 values(
  i,
  sq_ustore_regr_intercept_0013.nextval,
  i+445.255
  );
 end loop;
end;
/
--step3:查询;expect:成功
select distinct regr_intercept(col_2,col_2),grouping(col_3) from t_ustore_regr_intercept_0013 group by cube(col_1,col_2,col_3),rollup(col_2,col_3) having regr_intercept(abs(-col_1*-col_2-mod(col_2,col_3)),abs(-col_1*-col_2-mod(col_2,col_3)))>100 and regr_intercept(col_2,col_2)>1 order by 1,2 limit 10;

--step4:清理环境;expect:成功
drop sequence if exists sq_ustore_regr_intercept_0013;
drop table if exists t_ustore_regr_intercept_0013 cascade;